package com.epalmpay.service.trade;

import com.epalmpay.dto.order.OrderTradeInDTO;
import com.epalmpay.dto.order.OrderTradeListOutDTO;
import com.epalmpay.dto.trade.MerchantSettedDetailOutDTO;
import com.epalmpay.dto.trade.MerchantSettedInDTO;
import com.epalmpay.dto.trade.MerchantSettedInfoOutDTO;
import com.epalmpay.dto.trade.MerchantSettedListOutDTO;
import com.epalmpay.dto.trade.SettedBaseInDTO;
import com.epalmpay.dto.trade.TradeInDTO;
import com.epalmpay.dto.trade.TradeListOutDTO;
import com.epalmpay.dto.trade.TradeWalletInDTO;
import com.epalmpay.dto.trade.TradeWalletListOutDTO;
import com.epalmpay.entity.Page;
import com.epalmpay.entity.TradeOffline;
import com.epalmpay.util.Response;

import java.util.Map;

/**
 * Created by wucongpeng on 2017/5/4.
 */
public interface ITradeService {

    /**钱包交易
     * @return
     * @throws Exception
     */
    public TradeWalletListOutDTO getTradeWalletList(TradeWalletInDTO tradeWalletInDTO, Page page)throws Exception;

    /**交易记录列表分页
     * @return
     * @throws Exception
     */
    public TradeListOutDTO listOnlineRecords(TradeInDTO tradeInDTO, Page page)throws Exception;

    /**
     * 线上订单核销记录
     * @param tradeInDTO
     * @param page
     * @return
     * @throws Exception
     */
    public OrderTradeListOutDTO listOnlineOrderRecords(OrderTradeInDTO orderTradeInDTO, Page page)throws Exception;


    Response ysTradeList(Long memberId, Integer page, Byte transactionType);

    Map<String, Object> getMemberTradeList(String memberId, String datefrom, String dateto, String type, String memo, Integer pageNo, Integer pageSize) throws Exception;

	public MerchantSettedListOutDTO settedRecordList(MerchantSettedInDTO merchantSettedInDTO, Page page) throws Exception;

	public boolean finishMerChantSetted(SettedBaseInDTO settedBaseInDTO)throws Exception;

	public MerchantSettedInfoOutDTO getMerchantSettedInfo(SettedBaseInDTO settedBaseInDTO, Page page)throws Exception;

	public MerchantSettedDetailOutDTO merchantSettedDetai(SettedBaseInDTO settedBaseInDTO)throws Exception;

    public TradeOffline selectByOrderId(String orderId) throws Exception;

}
